{
  "cells": [
    {
      "cell_type": "code",
      "execution_count": 19,
      "metadata": {},
      "outputs": [],
      "source": [
        "import numpy as np\n",
        "from bertopic import BERTopic\n",
        "from sentence_transformers import SentenceTransformer\n",
        "from sklearn.feature_extraction.text import CountVectorizer\n",
        "from transformers.pipelines import pipeline\n",
        "from umap import UMAP\n",
        "from hdbscan import HDBSCAN\n",
        "from sklearn.feature_extraction.text import CountVectorizer"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# 加载数据"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 20,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "条数:  1000\n",
            "预览第一条:  文旅文 创看 洛阳 河南省 文旅文创 发展 大会 本次 大会 安排 项目 签约 主要 方面 内容 一是 文旅 产业 项目 签约 截至 目前 梳理 重点 文旅 项目 投资总额 525.6 亿元 遴选 重大项目 进行 现场 签约 投资总额 365.8 亿元 项目 包括 文物 数字化 开发 文化 创意 园区 建设 文化 项目 涵盖 旅游 度假区 建设 旅游 酒店 民宿 打造 旅游 项目 既有 旅游 景区 开发 商旅 综合体 建设 传统 业态 项目 宇宙 基地 沉浸 演艺 业态 项目 充分体现 我省 文化 旅游 发展 特点 趋势 二是 引客 入豫 项目 签约 主要 我省 文旅 部门 文旅 企业 头部 旅行 知名 OTA 平台 重点 客源地 文旅 部门 签订 引客 入豫 协议 持续 拓展 省外 客源 市场\n",
            "\n"
          ]
        }
      ],
      "source": [
        "# step1 加载文件\n",
        "with open('../../data/切词.txt', 'r', encoding='utf-8') as file:\n",
        "  docs = file.readlines()\n",
        "print('条数: ', len(docs))\n",
        "print('预览第一条: ', docs[0])\n",
        "\n",
        "vectorizer_model = None"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "# 使用BERT-Base-Chinese"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 21,
      "metadata": {},
      "outputs": [
        {
          "name": "stderr",
          "output_type": "stream",
          "text": [
            "Some weights of the model checkpoint at bert-base-chinese were not used when initializing BertModel: ['cls.predictions.transform.LayerNorm.weight', 'cls.predictions.bias', 'cls.predictions.transform.dense.weight', 'cls.seq_relationship.bias', 'cls.predictions.transform.dense.bias', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.decoder.weight', 'cls.seq_relationship.weight']\n",
            "- This IS expected if you are initializing BertModel from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
            "- This IS NOT expected if you are initializing BertModel from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n"
          ]
        },
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "(1000, 768)\n"
          ]
        },
        {
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Topic</th>\n",
              "      <th>Count</th>\n",
              "      <th>Name</th>\n",
              "      <th>Representation</th>\n",
              "      <th>Representative_Docs</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>-1</td>\n",
              "      <td>326</td>\n",
              "      <td>-1_景区_河南_城市_中国</td>\n",
              "      <td>[景区, 河南, 城市, 中国, 游客, 遗址, 博物馆, 历史, 洛阳市, 活动]</td>\n",
              "      <td>[河南 多家 景区 陆续 发布 开园 公告 台风 杜苏芮 强度 逐渐 减弱 河南 景区 陆续...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>0</td>\n",
              "      <td>98</td>\n",
              "      <td>0_活动_免费_景区_高速</td>\n",
              "      <td>[活动, 免费, 景区, 高速, 门票, 时间, 白云山, 地点, 栾川, 安全可靠]</td>\n",
              "      <td>[洛阳 身边 自驾游 栾川 高速 免费 答疑 自驾游 栾川 高速 费全免 问题 需要 了解 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>1</td>\n",
              "      <td>52</td>\n",
              "      <td>1_晚会_广场_活动_文旅</td>\n",
              "      <td>[晚会, 广场, 活动, 文旅, 体验, 话题, 沉浸, 街头, 历史, 隋唐洛阳城]</td>\n",
              "      <td>[中国 旅游 泉州 举行 多项 文旅 活动 鲤城区 城南 庙会 再次 开启 传统工艺 传统 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2</td>\n",
              "      <td>44</td>\n",
              "      <td>2_建设_机场_项目_规划</td>\n",
              "      <td>[建设, 机场, 项目, 规划, 铁路, 自驾车, 黄河, 航线, 国家, 发展]</td>\n",
              "      <td>[国家 发展 改革 印发 汉江 生态 经济带 发展 规划 通知 汉江 生态 经济带 规划 范...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>3</td>\n",
              "      <td>42</td>\n",
              "      <td>3_地方_很多_一天_一点</td>\n",
              "      <td>[地方, 很多, 一天, 一点, 已经, 时间, 古城, 酒店, 可惜, 西安]</td>\n",
              "      <td>[洛阳 值得 一去 地方 简单 下来 洛阳 旅游 攻略 建议 夏天 洛阳 洛阳 市区 主要 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>4</td>\n",
              "      <td>42</td>\n",
              "      <td>4_泉州_洛阳桥_旅行_历史</td>\n",
              "      <td>[泉州, 洛阳桥, 旅行, 历史, 济南, 沧州, 黄陂, 中国, 古城, 大福]</td>\n",
              "      <td>[海丝 泉州 夏天 清晨 洛阳桥 洛阳 日出 夏天 清晨 来到 泉州 洛阳桥 沐浴 晨光 长...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>5</td>\n",
              "      <td>31</td>\n",
              "      <td>5_竹海_王府_河南_旅游区</td>\n",
              "      <td>[竹海, 王府, 河南, 旅游区, 游泳, 处理, 栾川, 夏天, 水席, 景区]</td>\n",
              "      <td>[没错 没错 最近 夏日 火热 潮流 汉服 悄然 洛阳 山水 景区 吸引 大量 拍照 达人 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>6</td>\n",
              "      <td>30</td>\n",
              "      <td>6_石窟_龙门石窟_艺术_中国</td>\n",
              "      <td>[石窟, 龙门石窟, 艺术, 中国, 朝代, 世界, 造像, 文化遗产, 宝库, 莫高窟]</td>\n",
              "      <td>[洛阳 周边游 龙门石窟 中国 石刻 艺术 宝库 现为 世界 文化遗产 全国 重点 文物保护...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>7</td>\n",
              "      <td>27</td>\n",
              "      <td>7_游客_午餐_老君山_景区</td>\n",
              "      <td>[游客, 午餐, 老君山, 景区, 表示, 孙军范, 卷入, 同学, 工作人员, 网友]</td>\n",
              "      <td>[无人 值守 一元 午餐 结账 多出 国庆 假期 景区 连续 推出 午餐 共售 游客 点赞 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>8</td>\n",
              "      <td>27</td>\n",
              "      <td>8_防控_疫情_景区_开放</td>\n",
              "      <td>[防控, 疫情, 景区, 开放, 场所, 关闭, 恢复, 人员, 娱乐场所, 落实]</td>\n",
              "      <td>[洛阳 即日起 洛阳 暂时 关闭 网吧 KTV 人员 聚集 密闭 场所 小编 刚刚 洛阳市 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>9</td>\n",
              "      <td>26</td>\n",
              "      <td>9_银杏_文旅文创_大会_发展</td>\n",
              "      <td>[银杏, 文旅文创, 大会, 发展, 主题, 白云山, 河南, 中国, 行走, 读懂]</td>\n",
              "      <td>[旅行 千年 银杏 白云 盛景 洛阳 嵩县 白云山 第九届 银杏 文化节 主题 活动 隆重开...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>10</td>\n",
              "      <td>25</td>\n",
              "      <td>10_洞中_广济桥_建筑_鸡冠</td>\n",
              "      <td>[洞中, 广济桥, 建筑, 鸡冠, 周王城, 白马寺, 始建, 潮州, 大理, 公元]</td>\n",
              "      <td>[车载 民生 行天下 河南 旅游 行天下 汽车票 旅游 风景 智慧 购票 便民 出行 河南 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>11</td>\n",
              "      <td>25</td>\n",
              "      <td>11_巩义_河南_江南_故城</td>\n",
              "      <td>[巩义, 河南, 江南, 故城, 中国, 善良, 考古队, 历史, 洛阳纸贵, 范仲淹]</td>\n",
              "      <td>[听听 古诗 熏陶 打卡 孩子 自我 学习 王安石 泊船 瓜洲 京口 瓜洲 一水间 钟山 数...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>12</td>\n",
              "      <td>22</td>\n",
              "      <td>12_安阳_仙门_峡谷_古城</td>\n",
              "      <td>[安阳, 仙门, 峡谷, 古城, 旅行, 一日游, 潮州, 奇峡, 风景, 殷墟]</td>\n",
              "      <td>[超全 安阳 旅游 攻略 安阳 美食 大全 安阳 简称 这座 七朝 古都 盘踞 河南省 北端...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>13</td>\n",
              "      <td>21</td>\n",
              "      <td>13_增长_五一_数据_预订</td>\n",
              "      <td>[增长, 五一, 数据, 预订, 热门, 假期, 显示, 上海, 同期, 国内]</td>\n",
              "      <td>[携程 联合 新华 财经 发布 五一 旅行 数据 报告 报告 显示 北京 热门 旅游 城市 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>14</td>\n",
              "      <td>20</td>\n",
              "      <td>14_工作_集团_建设_进行</td>\n",
              "      <td>[工作, 集团, 建设, 进行, 投资, 服务, 标准化, 主任, 学习, 国资委]</td>\n",
              "      <td>[地方 国资 洛阳市 国有企业 纪检监察 工作 调研 座谈会 洛阳 文化 旅游 投资 集团 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>15</td>\n",
              "      <td>20</td>\n",
              "      <td>15_项目_文旅_消费_签约</td>\n",
              "      <td>[项目, 文旅, 消费, 签约, 森林, 发展, 体育, 业态, 建设, 高新区]</td>\n",
              "      <td>[河南 文旅 大会 月底 举办 省政府 新闻办 新闻 发布会 获悉 全省 文旅文创 发展 大...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>16</td>\n",
              "      <td>18</td>\n",
              "      <td>16_景区_度假区_公示_等级</td>\n",
              "      <td>[景区, 度假区, 公示, 等级, 评定, 质量, 4a, 河南省, 名单, 国家]</td>\n",
              "      <td>[许昌 身边 许昌 一处 4A 景区 近日 河南省旅游局 发布 公示 确定 景区 入围 国家...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>17</td>\n",
              "      <td>16</td>\n",
              "      <td>17_观测点_发展_文物_持续</td>\n",
              "      <td>[观测点, 发展, 文物, 持续, 数据, 人大代表, 两会, 世界旅游组织, 时代, 壮丽]</td>\n",
              "      <td>[洛阳 获得 联合国 旅游 大奖 近日 洛阳市 获得 世界旅游组织 大奖 洛阳 获得 联合国...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>18</td>\n",
              "      <td>15</td>\n",
              "      <td>18_旅客_郑州_列车_客流</td>\n",
              "      <td>[旅客, 郑州, 列车, 客流, 发送, 出行, 东站, 临客, 高速, 假期]</td>\n",
              "      <td>[今年 春运 洛阳 火车站 累计 发送 旅客 125.2 万人次 清明 长假 车票 开售 昨...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>20</th>\n",
              "      <td>19</td>\n",
              "      <td>13</td>\n",
              "      <td>19_龙门石窟_福昌_石窟_龙门</td>\n",
              "      <td>[龙门石窟, 福昌, 石窟, 龙门, 位于, 城隍庙, 旅行, 中国, 博物馆, 艺术]</td>\n",
              "      <td>[旅行 灵感 遇见 最美 城市 旅行 河南 旅行 洛阳 旅行 龙门石窟 位于 河南省 洛阳市...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>21</th>\n",
              "      <td>20</td>\n",
              "      <td>13</td>\n",
              "      <td>20_年票_续费_优惠_享受</td>\n",
              "      <td>[年票, 续费, 优惠, 享受, 免票, 优惠政策, 身份证, 航班, 门票, 负责人]</td>\n",
              "      <td>[洛阳 旅游 年票 在线 续费 昨日 获悉 日起 洛阳 旅游 年票 在线 续费 信息 查询 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>22</th>\n",
              "      <td>21</td>\n",
              "      <td>13</td>\n",
              "      <td>21_消费_国家_景区_示范</td>\n",
              "      <td>[消费, 国家, 景区, 示范, 万人次, 接待, 城市, 增长, 亿元, 42]</td>\n",
              "      <td>[元旦假期 洛阳 旅游 数据 出炉 网友 整理 归纳 元旦假期 河南 旅游 数据 元旦假期 ...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>23</th>\n",
              "      <td>22</td>\n",
              "      <td>12</td>\n",
              "      <td>22_少林寺_嵩山_佛教_禅宗</td>\n",
              "      <td>[少林寺, 嵩山, 佛教, 禅宗, 少室, 功夫, 祖庭, 少林, 高僧, 少林功夫]</td>\n",
              "      <td>[豫见 美景 少林寺 位于 河南省 郑州市 登封市 嵩山 乳峰 坐落于 嵩山 腹地 少室 茂...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>24</th>\n",
              "      <td>23</td>\n",
              "      <td>11</td>\n",
              "      <td>23_民宿_酒店_巧克力_孩子</td>\n",
              "      <td>[民宿, 酒店, 巧克力, 孩子, 余舍, 空间, 生活, 美食, 一家, 设计]</td>\n",
              "      <td>[世界 不见不散 爱上 酒店 点评 一定 想象 不到 洛阳 重渡 一家 隐藏 民宿 旅行 住...</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>25</th>\n",
              "      <td>24</td>\n",
              "      <td>11</td>\n",
              "      <td>24_河洛_大鼓_曲艺_邮局</td>\n",
              "      <td>[河洛, 大鼓, 曲艺, 邮局, 洛邑, 宫灯, 演出, 传承, 图书馆, 分馆]</td>\n",
              "      <td>[洛阳 身边 洛阳市 第十届 河洛 大鼓 曲艺 开幕 免费 欣赏 从市 文广 新局 获悉 洛...</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "    Topic  Count              Name  \\\n",
              "0      -1    326    -1_景区_河南_城市_中国   \n",
              "1       0     98     0_活动_免费_景区_高速   \n",
              "2       1     52     1_晚会_广场_活动_文旅   \n",
              "3       2     44     2_建设_机场_项目_规划   \n",
              "4       3     42     3_地方_很多_一天_一点   \n",
              "5       4     42    4_泉州_洛阳桥_旅行_历史   \n",
              "6       5     31    5_竹海_王府_河南_旅游区   \n",
              "7       6     30   6_石窟_龙门石窟_艺术_中国   \n",
              "8       7     27    7_游客_午餐_老君山_景区   \n",
              "9       8     27     8_防控_疫情_景区_开放   \n",
              "10      9     26   9_银杏_文旅文创_大会_发展   \n",
              "11     10     25   10_洞中_广济桥_建筑_鸡冠   \n",
              "12     11     25    11_巩义_河南_江南_故城   \n",
              "13     12     22    12_安阳_仙门_峡谷_古城   \n",
              "14     13     21    13_增长_五一_数据_预订   \n",
              "15     14     20    14_工作_集团_建设_进行   \n",
              "16     15     20    15_项目_文旅_消费_签约   \n",
              "17     16     18   16_景区_度假区_公示_等级   \n",
              "18     17     16   17_观测点_发展_文物_持续   \n",
              "19     18     15    18_旅客_郑州_列车_客流   \n",
              "20     19     13  19_龙门石窟_福昌_石窟_龙门   \n",
              "21     20     13    20_年票_续费_优惠_享受   \n",
              "22     21     13    21_消费_国家_景区_示范   \n",
              "23     22     12   22_少林寺_嵩山_佛教_禅宗   \n",
              "24     23     11   23_民宿_酒店_巧克力_孩子   \n",
              "25     24     11    24_河洛_大鼓_曲艺_邮局   \n",
              "\n",
              "                                     Representation  \\\n",
              "0        [景区, 河南, 城市, 中国, 游客, 遗址, 博物馆, 历史, 洛阳市, 活动]   \n",
              "1       [活动, 免费, 景区, 高速, 门票, 时间, 白云山, 地点, 栾川, 安全可靠]   \n",
              "2       [晚会, 广场, 活动, 文旅, 体验, 话题, 沉浸, 街头, 历史, 隋唐洛阳城]   \n",
              "3         [建设, 机场, 项目, 规划, 铁路, 自驾车, 黄河, 航线, 国家, 发展]   \n",
              "4          [地方, 很多, 一天, 一点, 已经, 时间, 古城, 酒店, 可惜, 西安]   \n",
              "5         [泉州, 洛阳桥, 旅行, 历史, 济南, 沧州, 黄陂, 中国, 古城, 大福]   \n",
              "6         [竹海, 王府, 河南, 旅游区, 游泳, 处理, 栾川, 夏天, 水席, 景区]   \n",
              "7     [石窟, 龙门石窟, 艺术, 中国, 朝代, 世界, 造像, 文化遗产, 宝库, 莫高窟]   \n",
              "8      [游客, 午餐, 老君山, 景区, 表示, 孙军范, 卷入, 同学, 工作人员, 网友]   \n",
              "9        [防控, 疫情, 景区, 开放, 场所, 关闭, 恢复, 人员, 娱乐场所, 落实]   \n",
              "10      [银杏, 文旅文创, 大会, 发展, 主题, 白云山, 河南, 中国, 行走, 读懂]   \n",
              "11      [洞中, 广济桥, 建筑, 鸡冠, 周王城, 白马寺, 始建, 潮州, 大理, 公元]   \n",
              "12     [巩义, 河南, 江南, 故城, 中国, 善良, 考古队, 历史, 洛阳纸贵, 范仲淹]   \n",
              "13        [安阳, 仙门, 峡谷, 古城, 旅行, 一日游, 潮州, 奇峡, 风景, 殷墟]   \n",
              "14         [增长, 五一, 数据, 预订, 热门, 假期, 显示, 上海, 同期, 国内]   \n",
              "15       [工作, 集团, 建设, 进行, 投资, 服务, 标准化, 主任, 学习, 国资委]   \n",
              "16        [项目, 文旅, 消费, 签约, 森林, 发展, 体育, 业态, 建设, 高新区]   \n",
              "17       [景区, 度假区, 公示, 等级, 评定, 质量, 4a, 河南省, 名单, 国家]   \n",
              "18  [观测点, 发展, 文物, 持续, 数据, 人大代表, 两会, 世界旅游组织, 时代, 壮丽]   \n",
              "19         [旅客, 郑州, 列车, 客流, 发送, 出行, 东站, 临客, 高速, 假期]   \n",
              "20     [龙门石窟, 福昌, 石窟, 龙门, 位于, 城隍庙, 旅行, 中国, 博物馆, 艺术]   \n",
              "21     [年票, 续费, 优惠, 享受, 免票, 优惠政策, 身份证, 航班, 门票, 负责人]   \n",
              "22        [消费, 国家, 景区, 示范, 万人次, 接待, 城市, 增长, 亿元, 42]   \n",
              "23      [少林寺, 嵩山, 佛教, 禅宗, 少室, 功夫, 祖庭, 少林, 高僧, 少林功夫]   \n",
              "24        [民宿, 酒店, 巧克力, 孩子, 余舍, 空间, 生活, 美食, 一家, 设计]   \n",
              "25        [河洛, 大鼓, 曲艺, 邮局, 洛邑, 宫灯, 演出, 传承, 图书馆, 分馆]   \n",
              "\n",
              "                                  Representative_Docs  \n",
              "0   [河南 多家 景区 陆续 发布 开园 公告 台风 杜苏芮 强度 逐渐 减弱 河南 景区 陆续...  \n",
              "1   [洛阳 身边 自驾游 栾川 高速 免费 答疑 自驾游 栾川 高速 费全免 问题 需要 了解 ...  \n",
              "2   [中国 旅游 泉州 举行 多项 文旅 活动 鲤城区 城南 庙会 再次 开启 传统工艺 传统 ...  \n",
              "3   [国家 发展 改革 印发 汉江 生态 经济带 发展 规划 通知 汉江 生态 经济带 规划 范...  \n",
              "4   [洛阳 值得 一去 地方 简单 下来 洛阳 旅游 攻略 建议 夏天 洛阳 洛阳 市区 主要 ...  \n",
              "5   [海丝 泉州 夏天 清晨 洛阳桥 洛阳 日出 夏天 清晨 来到 泉州 洛阳桥 沐浴 晨光 长...  \n",
              "6   [没错 没错 最近 夏日 火热 潮流 汉服 悄然 洛阳 山水 景区 吸引 大量 拍照 达人 ...  \n",
              "7   [洛阳 周边游 龙门石窟 中国 石刻 艺术 宝库 现为 世界 文化遗产 全国 重点 文物保护...  \n",
              "8   [无人 值守 一元 午餐 结账 多出 国庆 假期 景区 连续 推出 午餐 共售 游客 点赞 ...  \n",
              "9   [洛阳 即日起 洛阳 暂时 关闭 网吧 KTV 人员 聚集 密闭 场所 小编 刚刚 洛阳市 ...  \n",
              "10  [旅行 千年 银杏 白云 盛景 洛阳 嵩县 白云山 第九届 银杏 文化节 主题 活动 隆重开...  \n",
              "11  [车载 民生 行天下 河南 旅游 行天下 汽车票 旅游 风景 智慧 购票 便民 出行 河南 ...  \n",
              "12  [听听 古诗 熏陶 打卡 孩子 自我 学习 王安石 泊船 瓜洲 京口 瓜洲 一水间 钟山 数...  \n",
              "13  [超全 安阳 旅游 攻略 安阳 美食 大全 安阳 简称 这座 七朝 古都 盘踞 河南省 北端...  \n",
              "14  [携程 联合 新华 财经 发布 五一 旅行 数据 报告 报告 显示 北京 热门 旅游 城市 ...  \n",
              "15  [地方 国资 洛阳市 国有企业 纪检监察 工作 调研 座谈会 洛阳 文化 旅游 投资 集团 ...  \n",
              "16  [河南 文旅 大会 月底 举办 省政府 新闻办 新闻 发布会 获悉 全省 文旅文创 发展 大...  \n",
              "17  [许昌 身边 许昌 一处 4A 景区 近日 河南省旅游局 发布 公示 确定 景区 入围 国家...  \n",
              "18  [洛阳 获得 联合国 旅游 大奖 近日 洛阳市 获得 世界旅游组织 大奖 洛阳 获得 联合国...  \n",
              "19  [今年 春运 洛阳 火车站 累计 发送 旅客 125.2 万人次 清明 长假 车票 开售 昨...  \n",
              "20  [旅行 灵感 遇见 最美 城市 旅行 河南 旅行 洛阳 旅行 龙门石窟 位于 河南省 洛阳市...  \n",
              "21  [洛阳 旅游 年票 在线 续费 昨日 获悉 日起 洛阳 旅游 年票 在线 续费 信息 查询 ...  \n",
              "22  [元旦假期 洛阳 旅游 数据 出炉 网友 整理 归纳 元旦假期 河南 旅游 数据 元旦假期 ...  \n",
              "23  [豫见 美景 少林寺 位于 河南省 郑州市 登封市 嵩山 乳峰 坐落于 嵩山 腹地 少室 茂...  \n",
              "24  [世界 不见不散 爱上 酒店 点评 一定 想象 不到 洛阳 重渡 一家 隐藏 民宿 旅行 住...  \n",
              "25  [洛阳 身边 洛阳市 第十届 河洛 大鼓 曲艺 开幕 免费 欣赏 从市 文广 新局 获悉 洛...  "
            ]
          },
          "execution_count": 21,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "# 1. 词向量模型，同时加载本地训练好的词向量\n",
        "embedding_model = pipeline(\"feature-extraction\", model=\"bert-base-chinese\") # 使用bert-base-chinese\n",
        "embeddings = np.load('../../data/embedding_bbc.npy') # 使用bert-base-chinese向量\n",
        "print(embeddings.shape)\n",
        "\n",
        "# 2. 创建分词模型\n",
        "vectorizer_model = CountVectorizer() # 因为我们已经分好词了，所以这里不需要传入分词函数了\n",
        "\n",
        "# 3. 创建UMAP降维模型\n",
        "umap_model = UMAP(\n",
        "  n_neighbors=15,\n",
        "  n_components=5,\n",
        "  min_dist=0.0,\n",
        "  metric='cosine',\n",
        "  random_state=42  # ⚠️ 防止随机 https://maartengr.github.io/BERTopic/faq.html\n",
        ")\n",
        "\n",
        "# 4. 创建HDBSCAN聚类模型\n",
        "# 如果要建设离群值，可以减小下面两个参数\n",
        "# https://hdbscan.readthedocs.io/en/latest/faq.html\n",
        "hdbscan_model = HDBSCAN(\n",
        "  min_cluster_size=10,\n",
        "  min_samples=5,\n",
        "  metric='euclidean'\n",
        ")\n",
        "\n",
        "# 5. 创建CountVectorizer模型\n",
        "vectorizer_model = CountVectorizer(stop_words=['洛阳', '旅游', '文化'])\n",
        "\n",
        "# 正式创建BERTopic模型\n",
        "topic_model = BERTopic(\n",
        "  embedding_model=embedding_model,\n",
        "  vectorizer_model=vectorizer_model,\n",
        "  umap_model=umap_model,\n",
        "  hdbscan_model=hdbscan_model,\n",
        ")\n",
        "\n",
        "# 查看主题\n",
        "topics, probs = topic_model.fit_transform(docs, embeddings=embeddings) #传入训练好的词向量\n",
        "topic_model.get_topic_info()"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 22,
      "metadata": {},
      "outputs": [],
      "source": [
        "# ⭐ 打印主题信息\n",
        "topic_docs = topic_model.get_document_info(docs)\n",
        "topic_docs.to_csv('./聚类结果.csv')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 23,
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "文本条数： 1000\n",
            "文本条数： 1000\n"
          ]
        }
      ],
      "source": [
        "with open('../../data/文本.txt', 'r', encoding='utf-8') as file:\n",
        "  texts = file.readlines()\n",
        "  print('文本条数：', len(texts))\n",
        "  topic_docs.insert(1, '原文', texts)\n",
        "with open('../../data/时间.txt', 'r', encoding='utf-8') as file:\n",
        "  years = file.readlines()\n",
        "  print('文本条数：', len(years))\n",
        "  topic_docs.insert(2, '时间', years)\n",
        "topic_docs.to_csv('./聚类结果2.csv')\n"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3.10.6"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 2
}
